Generic Ownership: Practical Alias Control in Object-Oriented Programming Languages

نویسنده

  • Alex Potanin
چکیده

Modern object-oriented languages support many techniques that simplify the work of a programmer. Among them is type genericity — an ability to create generic descriptions of algorithms and object structures that will be automatically specialised by supplying type information at run time. On the other hand, object-oriented technologies still suffer from bad effects of aliasing— a case of many objects in program’s memory referring to the same object via different references. Ownership types is one of the ways to tame aliasing — they provide information about who is allowed to access a particular object and who is not. This PhD proposal outlines the ideas of generic ownership — a way to make aliasing control an obvious and integral feature of modern objectoriented languages. We present the current state of aliasing research and show how our work fits in. We then describe a new language — Ownership Generic Java (OGJ) — that we created that seamlessly combines type genericity and ownership types. We describe the implementation of the compiler and the type system based on Featherweight Generic Java that allows us to prove that our language supports static ownership. Additionally, we present a formal defaultingmechanism allowing any Java program to gain the benefits of ownership with no change to the underlying source code. Finally, this proposal presents the future work planned as part of this PhD thesis and a structured plan detailing how it is going to be achieved.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Ownership-Based Alias Managemant

Object-oriented programming relies on sharing and the mutable states of objects for common data structures, patterns and programming idioms. Sharing and mutable state is a powerful but dangerous combination. Uncontrolled aliasing risks causing representation exposure, where an object’s state is exposed and modifiable out of the control of its conceptually owning object. This breaks encapsulatio...

متن کامل

Object Ownership and Containment

Object-oriented programming relies on inter-object aliases to implement data structures and other abstractions. Objects have mutable state, but it is when mutable state interacts with aliasing that problems arise. Through aliasing an object’s state can be changed without the object being aware of the changes, potentially violating the object’s invariants. This problem is fundamentally unresolva...

متن کامل

Simple Ownership Types for Object Containment

Containment of objects is a natural concept that has been poorly supported in object-oriented programming languages. For a prede ned set of ownership contexts, this paper presents a type system that enforces certain containment relationships for run-time objects. A xed ordering relationship is presumed between the owners. The formalisation of ownership types has developed from our work with exi...

متن کامل

Object Ownership for Dynamic Alias Protection

Interobject references in object-oriented programs allow arbitrary aliases between objects. By breaching objects' encapsulation boundaries, these aliases can make programs hard to understand and especially hard to debug. We propose using an explicit, run-time notion of object ownership to control aliases between objects in dynamically typed languages. Dynamically checking object ownership as a ...

متن کامل

Capabilities for External Uniqueness

Unique object references have many important applications in object-oriented programming. For instance, with su cient encapsulation properties they enable safe and e cient transfer of message objects between concurrent processes. However, it is a long-standing challenge to integrate unique references into practical object-oriented programming languages. This paper introduces a new approach to e...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004